﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace System.Windows
{

    /// <summary>
    /// Represents an object that can be attached to another DependencyObject.
    /// </summary>
    public interface IAttachedObject
    {

        /// <summary>
        /// Gets the DependencyObject that this object is attached to.
        /// </summary>
        DependencyObject AssociatedObject
        {
            get;
        }

        /// <summary>
        /// Attaches the object to the specified DependencyObject.
        /// </summary>
        /// <param name="associatedObject">The associated DepedencyObject.</param>
        void Attach(DependencyObject associatedObject);

        /// <summary>
        /// Detaches the object from its associated DependencyObject.
        /// </summary>
        void Detach();
    }
}
